package br.ucb.servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.ucb.modelo.negocio.Compra;
import br.ucb.modelo.negocio.ItemEstoque;
import br.ucb.modelo.negocio.Produto;

/**
 * Servlet implementation class RecuperadorImagem
 */
@WebServlet("/imagem")
public class RecuperadorImagem extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Long id = Long.parseLong(request.getParameter("id"));
		String tipo = request.getParameter("tipo");
		if(tipo.equals("produto")) {
			List<Produto> produtos = (List<Produto>) request.getSession().getAttribute("produtos");
			for(Produto produto : produtos) {
				if(produto.getId().equals(id)) {
					response.setHeader("Content-Type","application/octet-stream");
					ServletOutputStream saida = response.getOutputStream();
					saida.write(produto.getImagem());
					saida.close();
					return;
				}
			}
		} else if(tipo.equals("compra")) {
			List<Compra> compras = (List<Compra>) request.getSession().getAttribute("historico");
			for(Compra compra: compras) {
				if(compra.getIdProduto().equals(id)) {
					response.setHeader("Content-Type","application/octet-stream");
					ServletOutputStream saida = response.getOutputStream();
					saida.write(compra.getImagem());
					saida.close();
					return;
				}
			}
		} else {
			List<ItemEstoque> itens = (List<ItemEstoque>) request.getSession().getAttribute("itens");
			for(ItemEstoque item: itens) {
				if(item.getIdProduto().equals(id)) {
					response.setHeader("Content-Type","application/octet-stream");
					ServletOutputStream saida = response.getOutputStream();
					saida.write(item.getImagem());
					saida.close();
					return;
				}
			}
		}
	}

}
